#ifndef CARD_H
#define CARD_H
#include <QVector>

class Card
{
public:
    //花色
    enum CardSuit
    {
       Suit_Begin,
       Diamond, //方块
       Club,    //梅花
       Heart,   //红桃
       Spade,   //黑桃
       Suit_End
    };

    //点数
    enum CardPoint
    {
        Card_Begin,
        Card_3,
        Card_4,
        Card_5,
        Card_6,
        Card_7,
        Card_8,
        Card_9,
        Card_10,
        Card_J,
        Card_Q,
        Card_K,
        Card_A,
        Card_2,
        Card_Small_Joker,
        Card_Big_Joker,
        Card_End
    };

    Card();
    Card(CardPoint point,CardSuit suit);

    void Set_Point(const CardPoint& point);
    void Set_Suit(const CardSuit& suit);
    const CardPoint& Get_Point()const;
    const CardSuit& Get_Suit()const;
    bool operator==(const Card&right);


private:
    CardPoint point_;
    CardSuit suit_;
};

using CardList = QVector<Card>;

bool operator==(const Card&left, const Card&right);
uint qHash(const Card& card);
bool operator<(const Card&left, const Card&right);

#endif // CARD_H
